home *** CD-ROM | disk | FTP | other *** search
/ Dr. Windows 3 / dr win3.zip / dr win3 / WINPROGS / MLK105.ZIP / HOST.MSL < prev    next >
Text File  |  1994-02-19  |  11KB  |  433 lines

  1. ' Host mode script
  2. ' Access levels are:    3 - Sysop
  3. '                       2 - user can access any directory
  4. '                       1 - user can access only current directory
  5. PUSH
  6. SET ECHO ON
  7. SET TEXTWRAP ON
  8. SET HOSTECHO ON
  9. SET INCRLF ON
  10. SET OUTCRLF ON
  11. SET CARRIERDETECT ON
  12.  
  13. SET DATABITS 8
  14. SET PARITY NONE
  15. SET STOPBITS 1
  16. SET FLOWCONTROL RTS
  17. SET LOCKBAUDRATE ON
  18. SET TERMINAL ANSI
  19.  
  20.  
  21. upload_dir$ = uploaddirectory
  22. default_dir$ = defaultdirectory
  23. file_spec$ = filespec
  24.  
  25.  
  26. cr$ = "^M"
  27. cr2$ = "^M^M"
  28. cr3$ = "^M^M^M"
  29. cr4$ = "^M^M^M^M"
  30. cr5$ = "^M^M^M^M^M"
  31. newpage$ = cr5$+cr5$+cr5$+cr5$+cr5$
  32.  
  33. Header$   = "                   Host Mode"
  34.  
  35. welcome1$ = "                 ***********************************"+cr$
  36. welcome2$ = "                 *        Microlink Host Mode      *"+cr$
  37. welcome3$ = "                 *      Press ENTER to Continue    *"+cr$
  38. welcome4$ = "                 ***********************************"+cr5$
  39.  
  40. continue = 1
  41. max_lines = 20
  42.  
  43.  
  44. WHILE continue=1
  45.     if ChangeDirectory(default_dir$) > 0 then
  46.       mprint "Invalid default directory"
  47.       beep
  48.       sleep 5
  49.       continue = 0
  50.       GOTO force_hangup
  51.     endif
  52.  
  53.     current_dir$ = default_dir$
  54.  
  55.     ONERROR force_hangup
  56.     AUTOANSWER
  57.     set error off        
  58.  
  59.     ONDISCONNECT force_hangup
  60.     sleep 5
  61.     RPRINT newpage$
  62.     RPRINT welcome1$
  63.     RPRINT welcome2$
  64.     RPRINT welcome3$
  65.     RINPUT welcome4$,temp$
  66.     Rprint cr4$
  67.  
  68.     ' Prompts to enter password
  69.     logon_ok = 0
  70.     FOR i = 1 TO 3
  71.     onerror skipsignon
  72.     RINPUT cr$+"Enter FIRST name: ", first$
  73.     RINPUT cr$+"Enter LAST name: ", last$
  74.     SET HOSTECHO OFF
  75.     RINPUT cr$+"Enter PASSWORD: ", password$
  76.     set error off
  77.     SET HOSTECHO ON
  78.     logon_ok = VerifyUser(first$, last$, password$)
  79.     IF logon_ok > 1  THEN
  80.         IF OPENHOST = 1 THEN
  81.             onerror skipnew
  82.             rprint cr2$+"              N E W   U S E R"+cr2$
  83.             Rprint cr$+"First Name: "+first$
  84.             Rprint cr$+"Last Name: "+last$
  85.             RINPUT cr$+"Correct? ", Temp$
  86.             logon_ok = 0
  87.             IF upper(Temp$) = "Y" THEN
  88.                 IF Adduser(first$, last$, password$, 1) > 0 THEN
  89.                     RPRINT cr2$+"Unable To Add User At This Time"
  90.                     logon_ok = 1
  91.                 ENDIF
  92.                 EXIT
  93.             ENDIF
  94.             skipnew:
  95.         ELSE
  96.             RPRINT cr2$+"Invalid logon attempt!"
  97.             IF i < 3 THEN
  98.                  RPRINT cr$+"There are " + String(3 - i) + " attempts left."
  99.             ENDIF
  100.         ENDIF
  101.     ELSE
  102.      IF logon_ok = 1  THEN
  103.         RPRINT cr$+"Invalid logon attempt!"
  104.         IF i < 3 THEN
  105.           RPRINT cr$+"There are " + String(3 - i) + " attempts left." + cr$
  106.         ENDIF
  107.      ELSE
  108.        EXIT
  109.      ENDIF
  110.     ENDIF
  111.     skipsignon:
  112.     NEXT
  113.  
  114.     IF logon_ok > 0 THEN
  115.     RPRINT cr2$+"Unable to validate user!"
  116.         RPRINT cr2$+"Hanging up!"
  117.         goto force_hangup
  118.     else
  119.     continue_commands = 1
  120.     access_level = ExtractUserLevel(first$, last$)
  121.     rprint cr4$
  122.     endif
  123.     WHILE continue_commands = 1
  124.         RPRINT cr2$+"         Host Mode Processor"+cr2$
  125.     RPRINT cr$ + "[F]File Directory    [D]Download    [U]Upload    [C]Chat"
  126.          ' Level 2 or 3
  127.     IF access_level > 1  THEN
  128.         RPRINT cr$ + "[CD]Change Directory [FS]File Specification"
  129.     ENDIF
  130.  
  131.     ' Level 3 only
  132.     IF access_level > 2 then
  133.         RPRINT cr$ + "[AU]Add User         [CU]Change User"
  134.         RPRINT cr$ + "[DU]Delete User      [S]ShutDown"
  135.     ENDIF
  136.  
  137.     RPRINT cr$ + "[G]Goodbye"
  138.  
  139.     ' Wait for command
  140.         RINPUT cr2$+current_dir$ + "> ", tempcommand$
  141.         command$ = upper(tempcommand$)
  142.  
  143.     ' Exit System
  144.     if len(command$) = 1 then
  145.         IF command$ = "G"  THEN
  146.         RPRINT cr$ + "Thanks for calling " + first$ + "!" + cr$
  147.         continue_commands = 0
  148.         SLEEP 2
  149.         ENDIF
  150.  
  151.             ' List Files
  152.         IF command$ = "F" THEN
  153.                 RPRINT cr4$
  154.         RPRINT "Directory listing of: " + current_dir$ + cr2$
  155.         ChangeDirectory(current_dir$)
  156.         filename$ = GetFirstDirEntry(current_dir$, file_spec$)
  157.         WHILE Len(filename$) > 0
  158.             FOR i = 1 to max_lines
  159.             RPRINT filename$ + cr$
  160.             filename$ = GetNextDirEntry()
  161.                     IF Len(filename$) = 0 THEN
  162.                     EXIT
  163.             ENDIF
  164.             NEXT
  165.             IF LEN(filename$) > 0 THEN
  166.                 Rinput cr$+"List paused.  Press ENTER to continue.",temp$
  167.                 IF "C" = upper(temp$) THEN
  168.                            exit
  169.                         ENDIF
  170.                     rprint cr4$
  171.             ENDIF
  172.         WEND
  173.  
  174.         RINPUT cr$+"End of List.   Press ENTER to Continue",temp$
  175.         rprint cr4$
  176.         ENDIF
  177.  
  178.         ' Download a File
  179.         IF command$ = "D" THEN
  180.             rprint cr4$
  181.         WHILE 1 = 1
  182.                     RPRINT cr$+Header$+cr3$
  183.             RPRINT cr$+"Available download file transfer protocols:" + cr2$
  184.             RPRINT "[X]..XMODEM Checksum" + cr$
  185.             RPRINT "[C]..XMODEM CRC" + cr$
  186.                     RPRINT "[Y]..YMODEM 1K" + cr$
  187.             RPRINT "[YB].YMODEM Batch" + cr$
  188.             RPRINT "[YG].YMODEM G" + cr$
  189.             RPRINT "[Z]..ZMODEM" + cr$
  190.             RPRINT "[E]..Cancel" + cr$
  191.             RINPUT "Select protocol: ", tempchoice$
  192.             choice$ = upper(tempchoice$)
  193.                     if len(choice$) = 1 then
  194.                 IF choice$ = "E" THEN
  195.                             EXIT
  196.                 ENDIF
  197.                 IF choice$ = "X" THEN
  198.                             set protocol XMODEM
  199.                             EXIT
  200.                 ENDIF
  201.                 IF choice$ = "C" THEN
  202.                             set protocol XMODEMCRC
  203.                             EXIT
  204.                 ENDIF
  205.             IF choice$ = "Y" THEN
  206.                             set protocol YMODEM
  207.                             EXIT
  208.                 ENDIF
  209.                 IF choice$ = "Z" THEN
  210.                             set protocol ZMODEM
  211.                             EXIT
  212.                 ENDIF
  213.             endif
  214.                     if len(choice$) = 2 then
  215.                 IF choice$ = "YB" THEN
  216.                             set protocol YMODEMB
  217.                             EXIT
  218.                 ENDIF
  219.                 IF choice$ = "YG" THEN
  220.                             set protocol YMODEMG
  221.                             EXIT
  222.                 ENDIF
  223.             ENDIF
  224.             rprint cr2$+"Invalid Selection"+cr2$
  225.         WEND
  226.                 IF choice$ = "E" THEN
  227.             rprint "Canceled!"+cr$
  228.                 ELSE
  229.                     ChangeDirectory(current_dir$)
  230.                     RINPUT cr2$+"Enter Filename: ", transfer_file$
  231.                     is_ok = DoesFileExist(transfer_file$)
  232.                     IF is_ok = 1 THEN
  233.                         RPRINT cr$+"File " + transfer_file$ + " was not found." + cr$
  234.                         RPRINT "File transfer canceled!" + cr$
  235.                     ELSE
  236.                         RPRINT cr$+"Downloading " + transfer_file$ + cr$
  237.                         ONERROR snderr
  238.                         SEND transfer_file$
  239.                         sleep 3
  240.                         rprint cr$+"File Transfer Successful"
  241.                         goto sndok
  242.                         snderr:
  243.                         rprint cr2$+"Error Downloading File"
  244.                         rinput cr$+"Hit ENTER to Continue",temp$
  245.                         sndok:
  246.                         set error off
  247.                     ENDIF
  248.                 ENDIF
  249.             ENDIF
  250.     ' Receive a File
  251.         IF command$ = "U" THEN
  252.             rprint cr4$
  253.             WHILE 1 = 1
  254.             RPRINT cr$+Header$+cr3$
  255.             RPRINT "Available Upload file transfer protocols:" + cr2$
  256.             RPRINT "[X]..XMODEM Checksum" + cr$
  257.             RPRINT "[C]..XMODEM CRC" + cr$
  258.             RPRINT "[Y]..YMODEM 1K" + cr$
  259.             RPRINT "[YB].YMODEM Batch" + cr$
  260.             RPRINT "[YG].YMODEM G" + cr$
  261.             RPRINT "[Z]..ZMODEM" + cr$
  262.             RPRINT "[E]..Exit" + cr$
  263.             RINPUT "Select protocol: ", tempchoice$
  264.             choice$ = upper(tempchoice$)
  265.             if len(choice$) = 1 then
  266.                 IF choice$ = "E" THEN
  267.                             EXIT
  268.                 ENDIF
  269.                 IF choice$ = "X" THEN
  270.                 set protocol XMODEM
  271.                 RINPUT cr$+"Enter Filename: ", transfer_file$
  272.                 is_ok = ValidFileName(transfer_file$)
  273.                         EXIT
  274.                 ENDIF
  275.                 IF choice$ = "C" THEN
  276.                         set protocol XMODEMCRC
  277.                 RINPUT cr$+"Enter Filename: ", transfer_file$
  278.                 is_ok = ValidFileName(transfer_file$)
  279.                         EXIT
  280.                 ENDIF
  281.                 IF choice$ = "Y" THEN
  282.                         set protocol YMODEM
  283.                 RINPUT cr$+"Enter Filename: ", transfer_file$
  284.                 is_ok = ValidFileName(transfer_file$)
  285.                         EXIT
  286.                 ENDIF
  287.                 IF choice$ = "Z" THEN
  288.                 set protocol ZMODEM
  289.                 transfer_file$ = ""
  290.                 is_ok = 1
  291.                         EXIT
  292.                 ENDIF
  293.             ENDIF
  294.             if len(choice$) = 2 then
  295.                 IF choice$ = "YB" THEN
  296.                 set protocol YMODEMB
  297.                 transfer_file$ = ""
  298.                 is_ok = 1
  299.                         EXIT
  300.                 ENDIF
  301.                 IF choice$ = "YG" THEN
  302.                         set protocol YMODEMG
  303.                 transfer_file$ = ""
  304.                 is_ok = 1
  305.                         EXIT
  306.                 ENDIF
  307.             ENDIF
  308.             rprint cr2$+"Invalid Selection"+cr2$
  309.         WEND
  310.                 IF choice$ = "E" THEN
  311.                 rprint cr$+"Canceled"+cr$
  312.             ELSE
  313.             IF is_ok = 0 THEN
  314.                         RPRINT "File " + transfer_file$ + " was not valid." + cr$
  315.                         RPRINT "File transfer canceled!" + cr$
  316.                     ELSE
  317.  
  318.                         ChangeDirectory(upload_dir$)
  319.                         ONERROR rcverr
  320.                         RPRINT cr2$+"Uploading " + transfer_file$ +cr$
  321.                         RPRINT cr$+"Start Your File Transfer"+cr$
  322.                         RECEIVE transfer_file$
  323.                         sleep 3
  324.                         RPRINT cr$+"File Transfer Successful"+cr$
  325.                         GOTO rcvok
  326.                         rcverr:
  327.                         Rprint "Error Uploading File - "+transfer_file$+cr$